.TH std::fwrite 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::fwrite \- std::fwrite

.SH Synopsis
   Defined in header <cstdio>
   std::size_t fwrite( const void* buffer, std::size_t size, std::size_t count,
   std::FILE* stream );

   Writes up to count binary objects from the given array buffer to the output stream
   stream. The objects are written as if by reinterpreting each object as an array of
   unsigned char and calling std::fputc size times for each object to write those
   unsigned chars into stream, in order. The file position indicator for the stream is
   advanced by the number of characters written.

   If the objects are not TriviallyCopyable, the behavior is undefined.

   If an error occurs, the resulting value of the file position indicator for the
   stream is indeterminate.

.SH Parameters

   buffer - pointer to the first object in the array to be written
   size   - size of each object
   count  - the number of the objects to be written
   stream - output file stream to write to

.SH Return value

   Number of objects written successfully, which may be less than count if an error
   occurred.

   If size or count is zero, fwrite returns zero and performs no other action.

.SH Example


// Run this code

 #include <array>
 #include <cstdio>
 #include <vector>

 int main ()
 {
     // write buffer to file
     if (std::FILE* f1 = std::fopen("file.bin", "wb"))
     {
         std::array<int, 3> v = {42, -1, 7}; // underlying storage of std::array is an array
         std::fwrite(v.data(), sizeof v[0], v.size(), f1);
         std::fclose(f1);
     }

     // read the same data and print it to the standard output
     if (std::FILE* f2 = std::fopen("file.bin", "rb"))
     {
         std::vector<int> rbuf(10); // underlying storage of std::vector is also an array
         std::size_t sz = std::fread(rbuf.data(), sizeof rbuf[0], rbuf.size(), f2);
         std::fclose(f2);
         for (std::size_t n = 0; n < sz; ++n)
             std::printf("%d\\n", rbuf[n]);
     }
 }

.SH Output:

 42
 -1
 7

.SH See also

   printf
   fprintf  prints formatted output to stdout, a file stream or a buffer
   sprintf  \fI(function)\fP
   snprintf
   \fI(C++11)\fP
   fputs    writes a character string to a file stream
            \fI(function)\fP
   fread    reads from a file
            \fI(function)\fP
   C documentation for
   fwrite
